invokeOnFirst

suspend fun <T, O> Iterable<Deferred<T>>.invokeOnFirst(    scope: CoroutineScope,     cancelOnResult: Boolean = true,     callback: suspend (T) -> O): O
suspend fun <T, O> invokeOnFirst(    scope: CoroutineScope,     vararg variants: Deferred<T>,     cancelOnResult: Boolean = true,     callback: suspend (T) -> O): O